package ch5;


public abstract class Animal {
	static final int age = 1;
	String name;
	public Animal(String name){
		this.name = name;
	}
	public abstract void enjoy();
	public abstract void run();
	public abstract void eat();
	
}

class Valuable {
	String name;
}

interface Animal2{
	public void enjoy();
	public void run();
	public void eat();
	
}

interface Protectable {
	public /*static final*/ String name = "PET" ;
	void protect();
	void deProtect();
	
}

interface Storable {
	void store();
}



class GoldenMonkey extends Animal implements Protectable{

	public GoldenMonkey(String name) {
		super(name);
		// TODO Auto-generated constructor stub
	}

	@Override
	public void deProtect() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void protect() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void enjoy() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void run() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void eat() {
		// TODO Auto-generated method stub
		
	}

	
	
}
/*
public interface Animal{
	public static final String name = "Animal Interface";
	public void enjoy();
	public void run();
	public void eat();
}*/

class Cat extends Animal{
	public String eyeColor;
	public Cat(String n, String c){ super(n); eyeColor = c; }
	@Override
	public void enjoy() {}
	@Override
	public void run() {
		
	}
	@Override
	public void eat() {
		
	}
}


class Lady {
	public String name;
	private Animal pet;
	Lady(String name, Animal p){
		this.name = name;
		pet = p;
	}
	
	public void myPetEnjoy() {
		pet.enjoy();
	}
	
	public static void main(String[] args) {
		Cat c = new Cat("cat", "blue");
		//Lady l1 = new Lady("Lady1", c);
		Lady l2 = new Lady("Lady2", c);
		//l1.myPetEnjoy();
		l2.myPetEnjoy();
	}
}

